1. Field of the Invention
The present invention relates generally to integrated circuit devices, and more specifically to implementing a data link control layer in an integrated circuit device for transferring and receiving data.
2. Discussion of the Related Art
Wireless modems for communications devices provide a means to format and transport data between a host device and an air interface. Wireless modems typically include a data link control (DLC) layer and a physical (PHY) layer. The DLC layer includes functionality to format the data for transmission over the air interface and to format data received over the air interface to go to the host device, i.e., the DLC controls packet or data movement through the modem. The physical layer (PHY) includes the functionality to transmit and receive the data via the air interface according to the medium access control (MAC) protocol. These layers may be implemented on an integrated circuit device as a combination of hardware and software.
Depending on the application, data packet movement through a modem performed by the DLC layer can include at least one or more of the following features: segmentation and reassembly (SAR), encryption/decryption, automatic repeat request (ARQ), quality of service (QoS) drop policy enforcement, corrupted packet handling, multi-flow data packet management and inter-packet timing preservation between the sender and receiver. It is understood that the more features a modem is designed to have, the modem will have greater performance and increased complexity.
Typically, the DLC layer performs data movement through modem using software for some functions and using hardware for other functions. Dedicated hardware, such as a hardware state machine, is used to perform that functionality that is highly repetitive and not subject to change once the modem design is complete. For example, encryption and decryption are typically performed in hardware. Implementing functionality in hardware can reduce cost and improve system performance, although may increase the design time. On the other hand, functionality that is complex, non-repetitive or subject to change as the modem design matures is implemented in software. For example, software stored in memory (e.g., RAM or ROM) is executed on an embedded general purpose microprocessor in order to implement such functionality. Typically, data movement through the wireless modem requires state maintenance including connection state, keys for encryption, authentication status, wireless channel state, wireless network frequency channel, wireless bandwidth reservations, current data queue occupancy and QoS statistics. In applications where the host device is designed to communicate with many different devices, such as a wireless access point of a wireless local area network, algorithms needed to maintain this state information are constantly subject to change. This is because the modem will connect to various host devices and each host device may want to use the modem in a slightly different manner. Another reason is that at the early stages of a modem design process, it is virtually impossible to predict all of the conditions that a wireless terminal will face. For these reasons and others, it is required that the algorithms that perform data movement and modem state maintenance are contained in software, e.g., adaptable code running on an embedded general purpose microprocessor.